package com.munichosica.myapp.controller;

import java.math.BigDecimal;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import com.munichosica.myapp.dto.Producto;
import com.munichosica.myapp.dto.ProductoPk;
import com.munichosica.myapp.exceptions.ProductoDaoException;
import com.munichosica.myapp.factory.ProductoDaoFactory;

@Controller
@RequestMapping("/Mantenimiento")
public class ProductoController {
	
	@RequestMapping(value="ListarProducto.jf",method=RequestMethod.GET)
	public String listar(Model model){
		try {
			Producto[] lista=ProductoDaoFactory.create().findAll();
			model.addAttribute("lista", lista);
		} catch (ProductoDaoException e) {
			return "Error";
		}
		return "MantProductos";
	}
	
	@RequestMapping(value="NuevoProducto.jf",method=RequestMethod.GET)
	public String nuevo(Model model){
		model.addAttribute("producto", new Producto());
		return "ProductoForm";
	}
	
	@RequestMapping(value="ProcesarProducto.jf", method=RequestMethod.POST)
	public String procesar(Producto producto,Model model){
		try {
			ProductoDaoFactory.create().insert(producto);
		} catch (ProductoDaoException e) {
			return "Error";
		}
		return "redirect:/Mantenimiento/ListarProducto.jf";
	}
	
	@RequestMapping(value="EliminarProducto.jf",method=RequestMethod.GET)
	public String eliminar(@RequestParam("codigo") String codigo){
		ProductoPk productoPk=new ProductoPk();
		productoPk.setProcodigoD(Long.parseLong(codigo));
		try {
			ProductoDaoFactory.create().delete(productoPk);
		} catch (ProductoDaoException e) {
			return "Error";
		}
		return "redirect:/Mantenimiento/ListarProducto.jf";
	}
}
